//
//  CCBaseTableViewController.swift
//  CCweibo
//
//  Created by itcc on 15/11/25.
//  Copyright © 2015年 itcc. All rights reserved.
//

import UIKit

class CCBaseTableViewController: UITableViewController {
    
    //用户登录的标志
    var userLogin = false
    
    //loadView() 的方法是创建控制器view的
    override func loadView() {
        //如果用户已经登陆 正常加载TabbleView 否则就创建访客视图
        userLogin ? super.loadView() : setupVistorVidew()
    }
    
    //创建访客视图 private私有的
    private func setupVistorVidew()
    {
        //设置view
        view = vistorView
        
        //设置代理
        vistorView.delegate = self
        
        print("当前控制器:\(self)")
        
        //在这里判断是什么类型的控制器 根据不同的控制器设置不同的访客视图内容
        //判断类型
        if self is CCHomeTableViewController
        {
            //转轮转起来
            vistorView.rotationAnimation()
            
            //监听应用进入后台的时候 增加通知
            NSNotificationCenter.defaultCenter().addObserver(self, selector: "didEnterBackground", name: UIApplicationDidEnterBackgroundNotification, object: nil)
            //监听进入应用程序的时候 增加通知
            NSNotificationCenter.defaultCenter().addObserver(self, selector: "didBecomeActive", name: UIApplicationDidBecomeActiveNotification, object: nil)
        }
        else if self is CCMessageTableViewController // 消息访客视图
        {
            //设置消息访客视图内容
            vistorView.setupVistorView("visitordiscover_image_message", message: "登录后，别人评论你的微博，发给你的消息，都会在这里收到通知")
        }
        else if self is CCDiscoverTableViewController //发现访客视图
        {
            vistorView.setupVistorView("visitordiscover_image_message", message: "登录后，最新、最热微博尽在掌握，不再会与实事潮流擦肩而过")
        }
        else if self is CCProfileTableViewController //我访客视图
        {
            vistorView.setupVistorView("visitordiscover_image_profile", message: "登录后，你的微博、相册、个人资料会显示在这里，展示给别人")
        }
        
        //设置导航栏按钮
        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.Plain, target: self, action: "vistorViewRegisterClick")
        
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登陆", style: UIBarButtonItemStyle.Plain, target: self, action: "vistorViewLoginClick")
    }
    
    deinit
    {
        //移除通知
        if self is CCHomeTableViewController
        {
            NSNotificationCenter.defaultCenter().removeObserver(self)
        }
    }
    
    
    ///应用进入后台会调用
    func didEnterBackground()
    {
        //停止核心动画
//        vistorView.pauseAnimation()
    }
    
    ///进入应用程序
    func didBecomeActive()
    {
        //开始核心动画
//        vistorView.resumeAnimation()
    }
    
    
    //MARK: - 懒加载
    
    ///访客视图
    private lazy var vistorView: CCVistorView = CCVistorView()

}

// MARK: - 扩展 CCBaseTableViewController 实现 CCVistorViewDelegate协议
// extension 和 oc 中的 Category非常类似 可以将协议的相关方法放到一起 方便统一管理代码
extension CCBaseTableViewController: CCVistorViewDelegate
{
    // MARK:= 实现代理方法
    func vistorViewLoginClick()
    {
        //modal另外一个控制器(只有控制器有这个功能)
        print("modal 另外一个控制器")
    }
    
    func vistorViewRegisterClick()
    {
        print("注册按钮被点击")
    }
}













